package week07.necessary.batchinsert.base;

import week07.necessary.batchinsert.entities.Orders;

import java.sql.SQLException;
import java.util.Collection;
import java.util.List;
import java.util.function.Consumer;

/**
 * 定义接口
 *
 * @author yky
 * @since 2021/8/5 12:34
 */
public interface IBatchInsert {

    /**
     * 初始化批量插入数据
     *
     * @return 初始化的订单数据
     * @param total
     */
    List<Orders> initialData(int total);

    /**
     * 切割数据
     *
     * @param ordersList 订单列表
     * @param size       切割的大小
     * @return 分割的集合
     */
    Collection<List<Orders>> partitionData(List<Orders> ordersList, int size);

    /**
     * 批量插入
     * @param consumer 消费者
     */
    void batchInsert(Consumer<Collection<List<Orders>>> consumer);

    /** 测试*/
    void test() throws SQLException;
}
